package com.ruoyi.zhgd.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.zhgd.util.PageUtils;
import com.ruoyi.zhgd.domain.vo.GroutingProcessVo;
import com.ruoyi.zhgd.domain.vo.GroutingResultVo;
import com.ruoyi.zhgd.domain.bo.GroutingResultBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.zhgd.dto.GroutingResultDto;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 压浆结果Service接口
 *
 * @author zyb
 * @date 2023-09-11
 */
public interface IGroutingResultService {

    /**
     * 查询压浆结果
     */
    GroutingResultVo queryById(String id);

    /**
     * 查询压浆结果列表
     */
    TableDataInfo<GroutingResultVo> queryPageList(GroutingResultBo bo, PageQuery pageQuery);

    /**
     * 查询压浆结果列表
     */
    List<GroutingResultVo> queryList(GroutingResultBo bo);

    /**
     * 新增压浆结果
     */
    Boolean insertByBo(GroutingResultBo bo);

    /**
     * 修改压浆结果
     */
    Boolean updateByBo(GroutingResultBo bo);

    /**
     * 校验并批量删除压浆结果信息
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);

    PageUtils resultList(Page page, Map<String, Object> params);

    List<GroutingResultDto> statisticAnalysis(String linkCode);

    /**
     * 压浆报表明细
     * @param params
     * @return
     */
    List<GroutingResultVo> reportDetail(Map<String, Object> params);

    /**
     * 压浆过程数据
     * @param bo
     * @param pageQuery
     * @return
     */
    TableDataInfo<GroutingProcessVo> processData(GroutingResultBo bo, PageQuery pageQuery);

    /**
     * echarts折线图
     * @param bo
     * @return
     */
    Map<String, List<String>> processDataEcharts(GroutingResultBo bo);
}
